#ifndef _KRAW_MESH_H_
#define _KRAW_MESH_H_

#include "kraw.h"

namespace Kraw
{

class MeshSource
{
public:
    MeshSource();
    ~MeshSource();

    virtual bool Load() = 0;
    void Unload();
    
    int GetVertexWidth();

    struct Stream
    {
        int size;//in floats
        int usage;//see Usage enum
        int index;//for indexed streams, eg. Texcoord
    };
    
    enum Usage
    {
        Coord = 0,
        Normal,
        Diffuse,
        TexCoord,
    };

    int numStreams;
    int numVertices;
    int numIndices;

    Stream* pStreams;
    void* pVertices;
    int* pIndices;
};

}

#endif //_KRAW_MESH_H_
